
/**
 * Created by Administrator on 2017/11/24 0024.
 */

//日期转换
Date.prototype.Format = function (fmt) { //author: meizz
    var o = {
        "M+": this.getMonth() + 1, //月份
        "d+": this.getDate(), //日
        "h+": this.getHours(), //小时
        "m+": this.getMinutes(), //分
        "s+": this.getSeconds(), //秒
        "q+": Math.floor((this.getMonth() + 3) / 3), //季度
        "S": this.getMilliseconds() //毫秒
    };
    if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    for (var k in o)
        if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
    return fmt;
}
var currentYearMonth =null;
var currentMonth =null;
var lastMonth =null;
var lastYear =null;
var startTime = null;       //开始时间，表格导出数据使用
var endTime = null;         //结束时间，表格导出数据使用
var farmName = null;       //电场名称，表格导出数据使用
var fileName = null;
var isType='tong'
$(function () {
    //$.ajaxSettings.async = false;
    // loadTower();//加载测风塔
    //loadHeight();//加载测风塔高度
    dateTiemSelect();

    $("#query").click(function () {
        var options=$("#cs option:selected");//获取id为"cs"的选中的项

        var aa = $('#selectFarm', window.parent.document).find("option:selected").text();
        // alert("111");
        if(options.val() == 1){
            isType='tong'
        }
        if(options.val() == 2){
            isType='huan'
        }
        // console.log(isType)
        if($("#startTime").val()===""){
            layer.msg("输入开始时间！", {icon: 2});
            $("#endTime").val("");
        }
        var startTime = new Date($("#startTime").val().replace(/\-/g, "\/"));
        var endTime = new Date($("#endTime").val().replace(/\-/g, "\/"));
        if(startTime >=endTime){
            layer.msg("开始时间不能大于结束时间！", {icon: 2});
            $("#startTime").val("");
            $("#endTime").val("");
            return false;
        }else {
            load();
        }
    })
    //  fileName = aa.substring(31,aa.length);
    // console.log(fileName);
    startTime = $("#startTime").val();
    endTime = $("#endTime").val();

    var table = new tableFactory(startTime,endTime);
})

//点击时间查询
function dateTiemSelect(){
    layui.use('laydate', function(){
        var laydate = layui.laydate;
        laydate.render({
            elem: '#startTime', //新增的日期
            type: 'month',//日期类型date表示年月日
            /*  trigger: 'click',//如果绑定的元素非输入框，则默认事件为：click*/
            theme: '#071f3a',//自定义主题
            min: '2014-1-1',//限制最小日期
            max: '2028-12-31'//限制最大日期
        });
        laydate.render({
            elem: '#endTime', //新增的日期
            type: 'month',
            theme: '#071f3a',//自定义主题
            max: '2028-12-31',//限制最大日期

        });
    });
}



//初始化加载曲线跟表格数据
function load(){
    var allTables;  //查询的所有数据
    var currentTime = new Array();
    var currentMonthNums = new Array();
    var lastMonthNums = new Array();
    var lastYearNums = new Array();
    // var index = layer.load(1);
    var date = new Array();//观测时间
    var power =new Array();//实时功率
    var speed =new Array();//测风塔风速
    var title = new Array();//图例标题
    var windspeed_fix = new Array() //风速差值
    var arr =new Array();
    var forecastPower = new Array();//短期功率
    var weatherSpeed = new Array();//天气预报风速
    var rmseSpeed = new Array();//风速均方根误差
    var rmseSpeed_fix = new Array();//订正风速均方根误差
    var rmseVal = new Array()//风速均方根误差值
    var rmseVal_fix = new Array()//订正风速均方根误差值
    var farmid = $('#selectFarm', window.parent.document).val();//获取父页面的元素
    var height = $("#height option:checked").val();
    var tower = $("#tower option:checked").val();
    var p = {
        "startTime":$("#startTime").val(),
        "endTime":$("#endTime").val(),
        "farmid":farmid,
    };

    $.ajax({
        url : "../sfMetSk/getRadiationByMonth",
        type : "get",
        contentType : "application/json",
        dataType : "json",
        data : p/*JSON.stringify(p)*/,//转换成字符串。后台使用了RequestBody注解
        success : function(data) {
            for (let dataKey in data.dataLists) {
                currentTime.push(data.dataLists[dataKey].dateTime)
                currentMonthNums.push(data.dataLists[dataKey].currentMonthRadiation)
                lastMonthNums.push(data.dataLists[dataKey].lastMonthRadiation)
                lastYearNums.push(data.dataLists[dataKey].lastYearRadiation)
            }
            allTables=data.dataLists
            console.log(data)
            lodaTu(currentTime,currentMonthNums,lastMonthNums,lastYearNums);
            $("#monthStatisticsTable").bootstrapTable("load", allTables);
        },

    });

}

//表格工厂
function tableFactory(startTime,endTime,fileNames) {
    var me = this;
    me.data = null;//有功功率
    me.windData = null;//电站信息
    var init = function () {
        $.when().then(function () {
            $("#monthStatisticsTable").bootstrapTable({
                method: 'get',				  //请求方式（*）
                striped: true,					  //是否显示行间隔色
                cache: false,					   //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
                pagination: true,				   //是否显示分页（*）
                sortable: true,					 //是否启用排序
                sortOrder: "desc",				   //排序方式
                sidePagination: "client",		   //分页方式：client客户端分页，server服务端分页（*）
                pageNumber: 1,					   //初始化加载第一页，默认第一页
                search: true,					   //是否显示表格搜索，只能进行客户端搜索
                strictSearch: false,                //true为全匹配，false为模糊查询
                showColumns: true,				  //是否显示筛选列按钮
                showRefresh: true,			  //是否显示刷新按钮
                clickToSelect:true,				//是否启用点击选中行
                showToggle: false,					//是否显示详细视图和列表视图的切换按钮
                cardView: false,					//是否显示详细视图
                detailView: false,				   //是否显示父子表
                singleSelect: true,                //是否支持多选,false表示支持多选，true表示不支持
                //undefinedText: '_',              //当数据为undefined时显示的字符
                height: 'auto',
                pageSize: 5,
                pageList: [5,20,30],
                editable:true,//是否可以行内编辑
                showExport: true,//是否显示导出按钮
                exportDataType:'all',//导出全部
                exportTypes:[  'csv'], //导出文件类型
                export: 'glyphicon-export icon-share',exportOptions:{
                    // ignoreColumn: [0,1],  //忽略某一列的索引
                    fileName:startTime+"_"+endTime,  //文件名称设置
                    // worksheetName: 'sheet1',  //表格工作区名称
                    // tableName: '总台帐报表',
                    //  excelstyles: ['background-color', 'color', 'font-size', 'font-weight'],
                    // onMsoNumberFormat: DoOnMsoNumberFormat
                },
                columns: [{
                    title: '日期',
                    field: 'dateTime',
                    sortable: true,//排序
                    align: 'center',
                    valign: 'middle',
                    formatter: function (value, row, index) {
                        return value;
                    }
                },
                    {
                        title: '当月辐照度',
                        field: 'currentMonthRadiation',
                        align: 'center',
                        valign: 'middle',
                        formatter: function (value, row, index) {
                            return value.toFixed(2);
                        }
                    }, {
                        title: '上月辐照度',
                        field: 'lastMonthRadiation',
                        align: 'center',
                        valign: 'middle',
                        formatter: function (value, row, index) {
                            return value.toFixed(2);
                        }
                    },
                    {
                        title: '去年本月辐照度',
                        field: 'lastYearRadiation',
                        align: 'center',
                        valign: 'middle',
                        formatter: function (value, row, index) {
                            return value.toFixed(2);
                        }
                    },
                    {
                        title: '日均辐照度大于200W/㎡的天数',
                        field: 'currentMonthGt200Count',
                        align: 'center',
                        valign: 'middle',
                        formatter: function (value, row, index) {
                            return value;
                        }
                    }
                ],
                onEditableSave: function (field, row, oldValue, $el) {//编辑之后的事件
                    var p ={
                        id:row.fid,
                        power:row.power
                    }
                    $.ajax({
                        type: "post",
                        url: "../shortPeriodManage/edit",
                        data:p,//后台使用了实体类，前台就不能用Json.stringify
                        dataType: 'JSON',
                        success: function (data, status) {

                        },
                        error: function () {
                            alert('编辑失败');
                        },
                        complete: function () {

                        }
                    });
                }
            });
            //me.loadData();
            // load();
        });
    }
    init();
}

//折线图 日期，实况功率，图例，实况风速，预报功率
function lodaTu(currentTime,currentMonthNums,lastMonthNums,lastYearNums) {

    currentMonthNums = currentMonthNums.map(num => num.toFixed(2));
    lastMonthNums = lastMonthNums.map(num => num.toFixed(2));
    lastYearNums = lastYearNums.map(num => num.toFixed(2));

    var myChart = echarts.init(document.getElementById("main"));
    //vapp.title = '多 X 轴示例';
    if(isType==="tong"){
        let currentMin = Math.min(...currentMonthNums);
        let currentMax = Math.max(...currentMonthNums);

        let lastYearMax = Math.max(...lastYearNums);
        let lastYearMin = Math.min(...lastYearNums);
        const max = Math.max(currentMax, lastYearMax).toFixed(2);
        const min = Math.min(currentMin, lastYearMin).toFixed(2);
        var colors = [ '#FFFF00','#FFFF00','#6eb2ff'];
        option = {
            title: {
                left: '3%',
                text: '辐照度同比统计',
                textStyle: {
                    fontSize: 25,
                    fontWeight:'bolder',
                    color: '#fff'
                }

            },
            tooltip: {
                trigger: 'axis',
                axisPointer: {
                    type: 'cross',
                    crossStyle: {
                        color: '#999'
                    }
                }
            },
            toolbox: {
                feature: {
                    dataView: { show: true, readOnly: false },
                    magicType: { show: true, type: ['line', 'bar'] },
                    restore: { show: true },
                    saveAsImage: { show: true }
                }
            },
            legend: {
                show:true,
                icon: 'rect',
                itemWidth: 25,
                itemHeight: 10,
                itemGap: 13,
                data: ['今年当月辐照度', '去年当月辐照度'],
                textStyle: {
                    fontSize: 12,
                    fontWeight:'bolder',
                    color: '#fff'
                }
            },
            calculable: false,//取消拖拽
            dataZoom: {
                show: true,
                realtime: true,
                start: 0,
                end: 100
            },
            xAxis: [
                {
                    splitLine:{show: false},//去除网格线
                    type: 'category',
                    data: currentTime,
                    axisLabel: {
                        // type: 'shadow',
                        textStyle:{
                            fontWeight:"bolder",
                            color:"#fff"
                        }
                    }
                }
            ],
            yAxis: [
                {
                    splitLine:{show: false},//去除网格线
                    type: 'value',
                    min: min,
                    max: max,
                    interval: 5,
                    axisLabel: {
                        formatter: '{value} W/㎡',
                        textStyle:{
                            fontWeight:"bolder",
                            color:"#fff"
                        }
                    }
                }
                // ,
                // {
                //     type: 'value',
                //     name: 'Temperature',
                //     min: 0,
                //     max: 25,
                //     interval: 5,
                //     axisLabel: {
                //         formatter: '{value} °C',
                //         textStyle:{
                //             fontWeight:"bolder",
                //             color:"#fff"
                //         }
                //     }
                // }
            ],
            series: [
                {
                    name: '今年当月辐照度',
                    type: 'bar',
                    label: { //柱体上显示数值
                        show: true,//开启显示
                        position: 'top',//在上方显示
                        textStyle: {//数值样式
                            fontSize: '18px',
                            color: '#fff'
                        },
                        formatter: '{c}W/㎡ ',
                    },
                    tooltip: {
                        valueFormatter: function (value) {
                            return value+'W/㎡';
                        }
                    },
                    data: currentMonthNums
                },
                {
                    name: '去年当月辐照度',
                    type: 'bar',
                    label: { //柱体上显示数值
                        show: true,//开启显示
                        position: 'top',//在上方显示
                        textStyle: {//数值样式
                            fontSize: 'px',
                            color: '#fff'
                        },
                        formatter: '{c}W/㎡ ',
                    },
                    tooltip: {
                        valueFormatter: function (value) {
                            return value+'W/㎡';
                        }
                    },
                    data: lastYearNums
                }
            ]
        };
        myChart.setOption(option);
    }
    else{
        let currentMin = Math.min(...currentMonthNums);
        let currentMax = Math.max(...currentMonthNums);

        let lastMonthMax = Math.max(...lastMonthNums);
        let lastMonthMin = Math.min(...lastMonthNums);
        const max = Math.max(currentMax, lastMonthMax).toFixed(2);
        const min = Math.min(currentMin, lastMonthMin).toFixed(2);
        var colors = [ '#FFFF00','#FFFF00','#6eb2ff'];
        option = {
            title: {
                left: '3%',
                text: '辐照度环比统计',
                textStyle: {
                    fontSize: 25,
                    fontWeight:'bolder',
                    color: '#fff'
                }

            },
            tooltip: {
                trigger: 'axis',
                axisPointer: {
                    type: 'cross',
                    crossStyle: {
                        color: '#999'
                    }
                }
            },
            toolbox: {
                feature: {
                    dataView: { show: true, readOnly: false },
                    magicType: { show: true, type: ['line', 'bar'] },
                    restore: { show: true },
                    saveAsImage: { show: true }
                }
            },
            legend: {
                show:true,
                icon: 'rect',
                itemWidth: 25,
                itemHeight: 10,
                itemGap: 13,
                data: ['当月辐照度', '上月辐照度'],
                textStyle: {
                    fontSize: 12,
                    fontWeight:'bolder',
                    color: '#fff'
                }
            },
            calculable: false,//取消拖拽
            dataZoom: {
                show: true,
                realtime: true,
                start: 0,
                end: 100
            },
            xAxis: [
                {
                    splitLine:{show: false},//去除网格线
                    type: 'category',
                    data: currentTime,
                    axisLabel: {
                        // type: 'shadow',
                        textStyle:{
                            fontWeight:"bolder",
                            color:"#fff"
                        }
                    }
                }
            ],
            yAxis: [
                {
                    splitLine:{show: false},//去除网格线
                    type: 'value',
                    min: min,
                    max: max,
                    interval: 5,
                    axisLabel: {
                        formatter: '{value} W/㎡',
                        textStyle:{
                            fontWeight:"bolder",
                            color:"#fff"
                        }
                    }
                }
                // ,
                // {
                //     type: 'value',
                //     name: 'Temperature',
                //     min: 0,
                //     max: 25,
                //     interval: 5,
                //     axisLabel: {
                //         formatter: '{value} °C',
                //         textStyle:{
                //             fontWeight:"bolder",
                //             color:"#fff"
                //         }
                //     }
                // }
            ],
            series: [
                {
                    name: '当月辐照度',
                    type: 'bar',
                    label: { //柱体上显示数值
                        show: true,//开启显示
                        position: 'top',//在上方显示
                        textStyle: {//数值样式
                            fontSize: 'px',
                            color: '#fff'
                        },
                        formatter: '{c}W/㎡ ',
                    },
                    tooltip: {
                        valueFormatter: function (value) {
                            return value+'W/㎡';
                        }
                    },
                    data: currentMonthNums
                },
                {
                    name: '上月辐照度',
                    type: 'bar',
                    label: { //柱体上显示数值
                        show: true,//开启显示
                        position: 'top',//在上方显示
                        textStyle: {//数值样式
                            fontSize: 'px',
                            color: '#fff'
                        },
                        formatter: '{c}W/㎡ ',
                    },
                    tooltip: {
                        valueFormatter: function (value) {
                            return value+'W/㎡';
                        }
                    },
                    data: lastMonthNums
                }
            ]
        };
        myChart.setOption(option);
    }
}




